diff --git a/django/test/runner.py b/django/test/runner.py
index 24ce766ce1..f2a91373b1 100644
--- a/django/test/runner.py
+++ b/django/test/runner.py
@@ -17,6 +17,7 @@ from contextlib import contextmanager
 from importlib import import_module
 from io import StringIO
 
+import django
 from django.core.management import call_command
 from django.db import connections
 from django.test import SimpleTestCase, TestCase
@@ -418,6 +419,7 @@ def _init_worker(
             if process_setup_args is None:
                 process_setup_args = ()
             process_setup(*process_setup_args)
+        django.setup()
         setup_test_environment()
 
     for alias in connections:
diff --git a/docs/releases/4.1.2.txt b/docs/releases/4.1.2.txt
index 809d583a78..47b53f0e8b 100644
--- a/docs/releases/4.1.2.txt
+++ b/docs/releases/4.1.2.txt
@@ -27,3 +27,7 @@ Bugfixes
 * Fixed a bug in Django 4.1 that caused :attr:`.ModelAdmin.autocomplete_fields`
   to be incorrectly selected after adding/changing related instances via popups
   (:ticket:`34025`).
+
+* Fixed a regression in Django 4.1 where the app registry was not populated
+  when running parallel tests with the ``multiprocessing`` start method
+  ``spawn`` (:ticket:`34010`).