Even though this code seems that you should not have any error like this.
But I am not sure how your actual file is. Anyway, try to understand this:
PHP send all header before you send any data, when you call session_start your browser will create an warning.
What is the possible reasons for the error:
1. You have wrote some code before calling session start you didnt display. below example will show such a failure
<HTML>
<?php
session_start();
?>
</HTML>
the above code will must create a warning.
2. Another possibility: you may have written in UTF-8 File format. in this case it is very much possible that you have created the file with BOM, if BOM exists then your page will act like this. Convert your file format to UTF-8 Without BOM,
USE some smart text editor to view all the character that is going to browser before you start your session. I will suggest NotePad++