As the error says, you cannot assign an immutable variable in any other place aside from the constructor or inlined in the contract body. Here’s why (from the Solidity documentation):
The contract creation code generated by the compiler will modify the contract’s runtime code before it is returned by replacing all references to immutables by the values assigned to the them.
At deployment/creation time, the contract creation code will replace all references to the immutable var by its value (which comes either with the contract code if it’s inlined or as an argument if it’s in the constructor), but has no way to know what
initialize will be.