'Starts the CallbackServer. This method should be called by the
client instead of run().'

def start(self):

    self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    try:
        self.server_socket.bind((self.address, self.port))
    except Exception as e:
        msg = u'An    error    occurred    while    trying    to    start    the    callback    server'
        logger.exception(msg)
        raise Py4JNetworkError(msg, e)
    self.thread = Thread(target=self.run)
    self.thread.daemon = self.callback_server_parameters.daemonize
    self.thread.start()
