I don't use fork() that often, but my own paranoia is why I always test for if len(some_list) But it's just my way of covering my ass in case the laws of physics change during execution, or just in case weird bugs exist like those found in this article.
* -1: error
* 0: success, in child
* > 0: success, in parent
Testing for <= 0 would cause you to think there's an error when you're really just the child process.