I know that it can be either of these. But I always see that the child executes first on my UNIX terminal. Also, why don't the parent and child execute in parallel. They seem to be executing serially. Is this because they share the same terminal?
In general, nothing can be said about the relative order of their execution.
Now, let's consider your specific problem. If:
Most likely this indicates that there is some (perhaps unintended) synchronization going on between the two processes.