Set ready exiting from the scope early

so that the main thread won't deadlock on self.ready if bad things happen.

This is related to the deadlock after the 'address in use error' in forked children. The intent of this patch is that although forked subprocesses would still see 'address in use error' at bind, they will set self.ready so that the error in the gc thread is ignored and the main thread can continue.