Starts the connection.
Returns a Future that resolves when the connection has been successfully established, or rejects with an error.
Future<void> startAsync();