call remove_done_callback in finally section (#1688)

diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 3ff511b..33b8f48 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -458,7 +458,8 @@
                 # local task.
                 future.exception()
             raise
-        future.remove_done_callback(_run_until_complete_cb)
+        finally:
+            future.remove_done_callback(_run_until_complete_cb)
         if not future.done():
             raise RuntimeError('Event loop stopped before Future completed.')