### Godot version

Godot 4.1-dev (ed63b9ea23)

### System information

Manjaro Gnome

### Issue description

`thread.start(test.bind(0))` prints the following error:

```
ERROR: Caller thread can't call this function in this node. Use call_deferred() or call_thread_group() instead.
   at: get_script (scene/main/node.cpp:3536)
```



### Steps to reproduce

```
func _ready() -> void:
	var thread := Thread.new()
	thread.start(test.bind(0))

func test(i: int) -> void:
	pass
```

### Minimal reproduction project

N/A
ClassDB::bind_method(D_METHOD("variant_to_base64", "variant", "full_objects"), &Marshalls::variant_to_base64, DEFVAL(false));
	ClassDB::bind_method(D_METHOD("base64_to_variant", "base64_str", "allow_objects"), &Marshalls::base64_to_variant, DEFVAL(false));
	ClassDB::bind_method(D_METHOD("raw_to_base64", "array"), &Marshalls::raw_to_base64);
	ClassDB::bind_method(D_METHOD("base64_to_raw", "base64_str"), &Marshalls::base64_to_raw);
	ClassDB::bind_method(D_METHOD("utf8_to_base64", "utf8_str"), &Marshalls::utf8_to_base64);
	ClassDB::bind_method(D_METHOD("base64_to_utf8", "base64_str"), &Marshalls::base64_to_utf8);
}
void Semaphore::wait() {
	semaphore.wait();
}
bool Semaphore::try_wait() {
	return semaphore.try_wait();
}
void Semaphore::post() {
	semaphore.post();
}
void Semaphore::_bind_methods() {
	ClassDB::bind_method(D_METHOD("wait"), &Semaphore::wait);
	ClassDB::bind_method(D_METHOD("try_wait"), &Semaphore::try_wait);
	ClassDB::bind_method(D_METHOD("post"), &Semaphore::post);
}
void Mutex::lock() {
	mutex.lock();
}
bool Mutex::try_lock() {