diff --git a/beat/web/backend/views.py b/beat/web/backend/views.py
index 00f9589878e75c17244c0adec8b516a7f714c759..3e5780be275a4dbddeeb2bcb3828c6c4d2a1e148 100644
--- a/beat/web/backend/views.py
+++ b/beat/web/backend/views.py
@@ -58,18 +58,24 @@ from . import schedule
 class Work:
     '''Helper to do the required worker job for local scheduling'''
 
-    cpulimit = resolve_cpulimit_path(None)
-    process = utils.resolve_process_path()
-    environments = utils.find_environments(None)
+    cpulimit = None
+    process = None
+    environments = None
     worker = None
 
+    def __setup__(self):
+
+        Worker.cpulimit = resolve_cpulimit_path(None)
+        Worker.process = utils.resolve_process_path()
+        Worker.environments = utils.find_environments(None)
+        Work.worker = Worker.objects.get(name=socket.gethostname()) \
+            if Worker.objects.count() != 1 else Worker.objects.get()
+
     def __call__(self):
 
-        if Work.worker is None: # set it once
-            # if only one worker declared, use that one
-            Work.worker = Worker.objects.get(name=socket.gethostname()) \
-                if Worker.objects.count() != 1 else Worker.objects.get()
+        if Work.worker is None: self.__setup__()
 
+        # Regular work
         utils.cleanup_zombies()
         Work.worker.work(Work.environments, Work.cpulimit, Work.process)