Exception raised in `TCPStore.__del__` upon process termination
### Description

`__del__` should not perform syncronization when called during process termination.

```
Exception ignored in: <function TCPStore.__del__ at 0x7fb939be23a0>
Traceback (most recent call last):
  File "/home/maehashi/Development/cupy/cupyx/distributed/_store.py", line 49, in __del__
  File "/home/maehashi/Development/cupy/cupyx/distributed/_store.py", line 97, in stop
  File "/home/maehashi/Development/cupy/cupyx/distributed/_store.py", line 31, in join
  File "/home/maehashi/.pyenv/versions/3.8.1/lib/python3.8/multiprocessing/connection.py", line 251, in recv
ModuleNotFoundError: import of builtins halted; None in sys.modules
```

### To Reproduce

_No response_

### Installation

_No response_

### Environment

_No response_

### Additional Information

_No response_
diff --git a/cupyx/distributed/_store.py b/cupyx/distributed/_store.py
index 643abefb5..ebc5961ab 100644
--- a/cupyx/distributed/_store.py
+++ b/cupyx/distributed/_store.py
@@ -1,3 +1,4 @@
+import atexit
 from ctypes import sizeof
 import multiprocessing
 import threading
@@ -11,6 +12,14 @@ from cupyx.distributed import _store_actions
 _DEFAULT_HOST = '127.0.0.1'
 _DEFAULT_PORT = 13333
 
+_exit_mode = False
+
+
+@atexit.register
+def _exit():
+    global _exit_mode
+    _exit_mode = True
+
 
 class ExceptionAwareProcess(multiprocessing.Process):
     def __init__(self, *args, **kwargs):
@@ -46,7 +55,8 @@ class TCPStore:
         self._current_barrier = None
 
     def __del__(self):
-        self.stop()
+        if not _exit_mode:
+            self.stop()
 
     def _set_process(self, process):
         self._process = process
@@ -91,6 +101,8 @@ class TCPStore:
         self._process = p
 
     def stop(self):
+        if _exit_mode:
+            return  # Prevent shutdown errors
         if self._process is not None:
             with self._run.get_lock():
                 self._run.value = 0
['cupyx/distributed/_store.py']