bpo-29762: More use "raise from None". (#569)

This hides unwanted implementation details from tracebacks.
diff --git a/Lib/multiprocessing/context.py b/Lib/multiprocessing/context.py
index 623f6fb..a3d491b 100644
--- a/Lib/multiprocessing/context.py
+++ b/Lib/multiprocessing/context.py
@@ -189,7 +189,7 @@
         try:
             ctx = _concrete_contexts[method]
         except KeyError:
-            raise ValueError('cannot find context for %r' % method)
+            raise ValueError('cannot find context for %r' % method) from None
         ctx._check_available()
         return ctx
 
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
index a545f3c..c2364ab 100644
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -720,14 +720,14 @@
                 item = self._items.popleft()
             except IndexError:
                 if self._index == self._length:
-                    raise StopIteration
+                    raise StopIteration from None
                 self._cond.wait(timeout)
                 try:
                     item = self._items.popleft()
                 except IndexError:
                     if self._index == self._length:
-                        raise StopIteration
-                    raise TimeoutError
+                        raise StopIteration from None
+                    raise TimeoutError from None
 
         success, value = item
         if success:
diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py
index bca8b7a..37365f2 100644
--- a/Lib/multiprocessing/process.py
+++ b/Lib/multiprocessing/process.py
@@ -199,7 +199,7 @@
         try:
             return self._sentinel
         except AttributeError:
-            raise ValueError("process not started")
+            raise ValueError("process not started") from None
 
     def __repr__(self):
         if self is _current_process: