pub fn spawn_if_possible<F>(
    future: F
) -> impl Future<Output = Result<F::Output, SpawnError>>where
    F: Future + 'static + Send,
    F::Output: Send + 'static,