this works by tagging functions, eg:
  def my_func(scene):
      pass
  bpy.app.handlers.permanent_tag(my_func, True)  # <-- important bit
  bpy.app.handlers.frame_change_pre.append(my_func)
		
	
this works by tagging functions, eg:
  def my_func(scene):
      pass
  bpy.app.handlers.permanent_tag(my_func, True)  # <-- important bit
  bpy.app.handlers.frame_change_pre.append(my_func)