Fork detection before creating the socket.

In case fork happens before s.bind, we will run into an address in use error.

This fix will alleviate the problem, but it is still less than ideal. -- what if a fork happens before s.bind? 
same applies to the detection before s.recv().

This is related to Issue 440 and Issue 439.
Detect fork before creating the socket.

In addition, protect against fork between creation and binding.
ensure only the master process binds to the url. (forks that accidentally grab the url will release it and die)
Move fork detection before bind
move fork detection before socket creation.

Actually move the line before socket creation.
Merge pull request #603 from rainwoodman/patch-2

Fork detection before binding the socket.