Start IOLoop in daemonized thread.

def start(self):
        """Start IOLoop in daemonized thread."""
        assert self._thread is None, 'thread already started'

        # configure thread
        self._thread = Thread(target=self._start_io_loop)
        self._thread.daemon = True

        # begin thread and block until ready
        self._thread.start()
        self._ready.wait()