Let’s say I have a develop branch. I create a feature branch from this to develop a feature. Once the feature is developed, it is merged back into develop. Pretty much like shown here:

Is there a way I can freeze the feature branch so that no further commits can be made to it?
The reason for not outright deleting the branch is so that viewing the history can still show the feature branch and that if there needs to be a tweak made to the feature then it is possible for someone to create a new feature branch from the last commit of the previous feature.
Christopher is right, tagging will help you do this. I recommend deleting the branch name too to make it a little harder for someone to checkout the branch and make edits.
First, merge the branch into develop
Then checkout the branch
Then create a tag, with a comment.
Then delete the branch
After doing this, you won’t be able to checkout the branch by name. Instead you’ll be able to checkout the tag by name, this will put you into a detached head state which will deter changes to the code.
Now to wrap things up and sync with origin…
Push the update and new tag
Delete the remote feature branch