As always, there is another way to prevent the zombies. . .

throw this into your code inside your main control loop (in the parent). . . this is the zombie garbage collection. Leaving zombies while your parent is running is considered to be "bad".
Code:
waitpid(-1, NULL, WNOHANG);
Andy