This fixes #3372.
In short:
- Current CPython multiprocessing.queues.Queue doesn't close properly unless put has been called before you try to close.
- Not as simple as just changing the write pipe close as this has to be done in the context of the buffer thread.
- This makes sure that before the thread has been started (before put has been called for instance) that something will close the write pipe.